package com.mapper;

import com.github.pagehelper.Page;
import com.pojo.Role;
import com.pojo.RoleExample;
import com.pojo.User;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface RoleMapper {
    /*<!--查询带条件-->分页*/
    Page<Role> selectByQueryString(String queryString);

    //查询该角色对应的权限id
    Integer [] queryByPermissionId(Integer RoleId);

    //查询该角色对应的菜单id
    Integer [] queryByMenuId(Integer RoleId);

    //第三方表插入数据:角色和权限
    void addRoleAndPermission(@Param("RoleId") Integer RoleId,@Param("PermissionIds") Integer [] PermissionIds);
    //第三方表插入数据:角色和菜单
    void addRoleAndMenu(@Param("RoleId") Integer RoleId,@Param("MenuIds") Integer [] MenuIds);

    //删除第三方表该角色对应的权限
    void deleteByRoleMenu(Integer RoleId);

    //删除第三方表该角色对应的权限
    void deleteByRole(Integer RoleId);

    //查询有没有权限引用该角色
    Integer queryByRoleId(Integer RoleId);
    //查询有没有用户在使用此角色
    Integer queryByUserCount(Integer RoleId);
    //查询有没有菜单在引用此角色
    Integer queryByMenuCount(Integer RoleId);

    long countByExample(RoleExample example);

    int deleteByExample(RoleExample example);

    int deleteByPrimaryKey(Integer id);

    int insert(Role record);

    int insertSelective(Role record);

    List<Role> selectByExample(RoleExample example);

    Role selectByPrimaryKey(Integer id);

    int updateByExampleSelective(@Param("record") Role record, @Param("example") RoleExample example);

    int updateByExample(@Param("record") Role record, @Param("example") RoleExample example);

    int updateByPrimaryKeySelective(Role record);

    int updateByPrimaryKey(Role record);
}